package annotation;

import java.lang.annotation.Annotation;
import java.lang.reflect.Field;

/**
 * 使用反射读取注解信息,模拟处理注解信息的流程
 */
public class Demo03 {
    public static void main(String[] args) {
        try {
            Class clazz=Class.forName("annotation.Student");
            //获取annotation.Student类的所有注解
            Annotation[] annotation=clazz.getAnnotations();
            for (Annotation a:annotation){
                System.out.println(a);
            }
            //获得类的指定注解
            StuTable st= (StuTable) clazz.getAnnotation(StuTable.class);
            System.out.println(st.value());
            //获得类的属性的注解
            Field field=clazz.getDeclaredField("stuName");
            StuField sf=field.getAnnotation(StuField.class);
            System.out.println(sf);
            //根据获得的表名/字段信息,拼出DDL语句,然后使用JDBC执行这个SQL语句,在数据库中生成相关的表

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (NoSuchFieldException e) {
            e.printStackTrace();
        }
    }
}
